extends CanvasLayer
var data
var 消失计时器: float = 3.0  # 3秒计时器
var 是否正在关闭 = false  # 添加一个标志来防止重复关闭
@onready var 当前序号=-1
@onready var 菜单控制节点 = $Control
##合成中使用的
func 合成(物品,i):
	当前序号=i
	get_item_data(物品)
#获取物品数据
func get_item_data(物品):
	# 复制一份物品数据
	data = 物品.duplicate(true)
	
	# 根据物品类型显示不同的按钮
	if data is EquipmentData:
		$Control/VBoxContainer/装备.visible = true
		# 如果已装备，显示"卸下"，否则显示"装备"
		if data.is_equipped:
			$Control/VBoxContainer/装备.text = "卸下"
		else:
			$Control/VBoxContainer/装备.text = "装备"
	else:
		##非装备的物品
		$Control/VBoxContainer/装备.visible = false
	if Ui.环境状态==2:
		if data is EquipmentData:
			if data.is_in_furnace==false:
				$Control/VBoxContainer/使用.text="添加"
			else:
				$Control/VBoxContainer/使用.text="卸下"
		else:
			if data.index!=-1:
				$Control/VBoxContainer/使用.text="添加"	
			else:
				$Control/VBoxContainer/使用.text="卸下"
func _process(delta):
	if Ui.环境状态==1:
		$Control/VBoxContainer/装备.visible = true
		$Control/VBoxContainer/使用.visible = false
	else:
		$Control/VBoxContainer/装备.visible = false
		$Control/VBoxContainer/使用.visible = true
	
	# 更新计时器
	if !是否正在关闭:
		消失计时器 -= delta
		if 消失计时器 <= 0:
			关闭菜单()
		
		# 更新菜单透明度
		if 消失计时器 < 1.0:
			菜单控制节点.modulate.a = 消失计时器  # 最后一秒渐隐

# 安全关闭菜单
func 关闭菜单():
	if !是否正在关闭:
		是否正在关闭 = true
		queue_free()

#单击出售
func _on_button_button_down():
	if data:
		Cd.出售物品(data,1)
		关闭菜单()

#单击装备/卸下
func _on_装备_button_down():
	if data is EquipmentData:
		if data.is_equipped:
			# 卸下装备
			Cd.卸下装备(data)
		else:
			# 装备物品
			Cd.装备物品(data)
		关闭菜单()

# 鼠标进入时重置计时器
func _on_control_mouse_entered():
	消失计时器 = 3.0
	菜单控制节点.modulate.a = 1.0  # 恢复完全不透明

##单击使用
func _on_使用_button_down():
	if data:
		if Ui.炼丹炉数据!=null:
			if Ui.炼丹炉状态==0:
				##针对装备的格子
				if data is EquipmentData:
					##如果不在炼丹炉中,则放入炼丹炉
					if data.is_in_furnace==false:
						Cd.装备放入炼丹炉(data)
					else:
						Cd.装备从炼丹炉中取出(data)
				##如果是强化石
				if data is StrengthenStone:
					##如果不在炼丹炉中,则放入炼丹炉
					if data.index!=-1:
						Cd.材料放入炼丹炉(data)
					else:
						Cd.材料从炼丹炉中取出(data)
			elif Ui.炼丹炉状态==1:
				if data is EquipmentData:
					##如果不则放入合成格子
					if data.is_in_furnace==false:
						Cd.放进合成格子(data)
					else:
						Cd.拿出合成格子(当前序号)
				else:
					##如果是强化石
					if data.index!=-1:
						Cd.放进合成格子(data)
					else:
						Cd.拿出合成格子(当前序号)
				pass
			#刷新背包
			Ui.背包数据.refresh_bag()
		关闭菜单()
